// #include "robot.hpp"

// #include "spdlog/spdlog.h"

// Robot::Robot() { SPDLOG_TRACE("Constructed."); }

// Robot::Robot(const std::string &dev_path, const std::string &url) {
//     // mcu_.Init(dev_path);
//   // service_.Init(url.c_str());
//   Init(dev_path, url);
//   SPDLOG_TRACE("Constructed.");
// }

// Robot::~Robot() { SPDLOG_TRACE("Destructed."); }

// bool Robot::Init(const std::string &dev_path, const std::string &url) {
//   // service_.Init(url.c_str());
//   // mcu_.Init(dev_path);
//   // cam_.Open(0);
//   // cam_.Setup(640, 480);
//   // gps_.Init(true);
//   (void)url;
//   lidar_.Open();
//   andr_.Init(dev_path);
//   return true;
// }

// // Protocol_UpData_t Robot::GetMCU() { return mcu_.GetMCU(); }

// void Robot::Pack(std::vector<float> f) {
//   SPDLOG_WARN("Packed");
//   andr_.Pack(f);
// }

// std::string Format(Protocol_UpData_t data, DownGPSData gps) {
//   // cv::format();
//   std::string ret = "{\"robotid\":\"iff-robot\",";
//   ret += cv::format(
//       "\"Posestatus\":{"
//       "\"acc_x\":%.3f,"
//       "\"acc_y\":%.3f,"
//       "\"acc_z\":%.3f,"
//       "\"rev\":%.3f,"
//       "\"gyo_yaw\":%.3f,"
//       "\"gyo_pitch\":%.3f,"
//       "\"gyo_roll\":%.3f"
//       "},",
//       data.imu.accl.ax, data.imu.accl.ay, data.imu.accl.az,
//       ((data.motors.m1 + data.motors.m2 + data.motors.m3 + data.motors.m4) / 4),
//       data.imu.gyro.wx, data.imu.gyro.wy, data.imu.gyro.wz);

//   if (gps.la_ != 0 && gps.longti_ != 0) {
//     ret += cv::format(
//         "\"GPSstatus\":{"
//         "\"timestamp\":%d,"
//         "\"atti\":%.3f,"
//         "\"lati\":%.3f,"
//         "\"longi\":%.3f"
//         "}",
//         gps.utc_, gps.al_, gps.la_, gps.longti_);
//   }
//   SPDLOG_WARN("{}", ret);
//   return ret + "}";
// }
